iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Odoo

利用【AI】工具,聰明進行 Odoo 程式開發系列 第 13

Day13:個案一:學校圖書管理(9)-學生借書及訂閱記錄

  • 分享至 

  • xImage
  •  

使用者故事

作為一名讀者,我希望能在個人帳戶中查看我的借閱歷史、當前借閱狀態和逾期提醒,以便有效管理我的借閱活動。

GPT協助產生邏輯說明

好的,根據您的使用者故事,以下是實現功能的開發邏輯和步驟:

1. 擴展模型以支持借閱記錄

  • 建立借閱記錄模型 (library.book.loan):此模型將記錄每次借閱的詳細信息,包括書籍、學生、借閱日期、預計歸還日期、實際歸還日期和狀態(如借出中、已歸還、逾期)等。

  • 修改 LibraryBook 模型:添加一個 One2many 字段,關聯到新的借閱記錄模型,以便追蹤每本書的借閱歷史。

  • 修改 LibraryStudent 模型:同樣添加一個 One2many 字段,關聯到借閱記錄模型,以便學生查看自己的借閱歷史。

2. 在學生的個人帳戶中展示借閱資訊

  • 建立專用的借閱歷史視圖:為學生創建一個列表或儀表板,顯示他們的所有借閱記錄,包括當前借閱和歷史借閱。

  • 添加過濾和排序功能:允許學生根據借閱日期、書籍名稱、狀態等進行過濾和排序,方便他們查找特定的借閱記錄。

  • 確保資料安全與隱私:設置適當的存取權限,確保學生只能查看自己的借閱記錄,不能訪問他人的資料。

3. 實現逾期提醒功能

  • 計算逾期狀態:在借閱記錄模型中添加一個計算字段,根據預計歸還日期和當前日期判斷借閱是否逾期。

  • 在視圖中高亮逾期記錄:在學生的借閱歷史視圖中,使用顏色或圖標標示逾期的借閱記錄,以引起注意。

  • 自動通知功能

    • 設定自動化動作(Scheduled Actions):定期檢查逾期的借閱記錄。

    • 發送提醒通知:對於逾期未還的借閱,系統自動向學生的電子郵件或系統訊息發送逾期提醒。

4. 更新使用者介面與體驗

  • 在學生的首頁添加快捷入口:在學生登入後的主頁面,添加「我的借閱」或「借閱歷史」的快捷連結,方便快速訪問。

  • 優化視覺效果:在借閱歷史視圖中,使用進度條、標籤或圖示來表示借閱狀態(如借出中、已歸還、逾期)。

  • 提供操作功能:允許學生在適當的情況下對借閱記錄進行操作,例如續借申請(如果政策允許)。

5. 調整權限與安全設定

  • 更新存取群組:確保學生群組具有訪問借閱記錄和相關視圖的權限。

  • 驗證資料存取:在後端代碼中添加檢查,確保學生只能訪問與自己相關的借閱資料。

開發結果

1. 擴展模型以支持借閱記錄

class LibraryBookLoan(models.Model):
    _name = 'library.book.loan'
    _description = '書籍借閱記錄'

    book_id = fields.Many2one('library.book', string='書籍', required=True)
    student_id = fields.Many2one('library.student', string='學生', required=True)
    loan_date = fields.Date(string='借閱日期', default=fields.Date.context_today)
    expected_return_date = fields.Date(string='預計歸還日期', required=True)
    actual_return_date = fields.Date(string='實際歸還日期')
    state = fields.Selection([
        ('ongoing', '借出中'),
        ('returned', '已歸還'),
        ('overdue', '逾期'),
    ], string='狀態', compute='_compute_state', store=True, default='ongoing')

2. 在學生的個人帳戶中展示借閱資訊

https://ithelp.ithome.com.tw/upload/images/20240926/20102255ckQHkf4tS1.jpg

3. 在書藉管理展示借閱資訊

https://ithelp.ithome.com.tw/upload/images/20240926/20102255KeiCM9HW3m.jpg

3. 實現逾期提醒功能

https://ithelp.ithome.com.tw/upload/images/20240926/20102255b4yFnodjys.jpg

本章小結

在本章中,我們針對圖書館管理系統的需求,實現了學查看借閱歷史、當前借閱狀態和逾期提醒的功能。其中,特別著重於自動化通知的實現。

  • 計算逾期狀態:在借閱記錄模型中添加了計算字段,根據預計歸還日期和當前日期自動判斷借閱是否逾期。
  • 自動通知功能
    • 設定了排程動作(Scheduled Actions):每日凌晨 1 點,系統自動執行檢查,尋找所有逾期的借閱記錄。
    • 發送提醒通知:對於逾期未還的借閱,系統自動向學生的帳戶發送內部通知,提醒他們盡快歸還書籍。

上一篇
Day12:個案一:學校圖書管理(8)-學生與系統管理者權限
下一篇
Day14:個案一:學校圖書管理(10)-逾期提醒寄送e-mail
系列文
利用【AI】工具,聰明進行 Odoo 程式開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言